--script per il cambio iva
declare @validoAl_new_21 datetime='2013-09-30 23:59:59'
declare @codiva_new char(3)='22 '
declare @validoDal_new datetime='2013-10-01 00:00:00'
declare @validoAl_22 datetime='2013-12-31 23:59:59'
declare @codiva_old char(3)='21'

begin transaction
print 'modifico configtasse'
update configtasse set valido_al=@validoAl_new_21 where codiva=@codiva_old
if @@error<>0
goto on_error

insert into configtasse(
	CODTASSA, CODVAL, CODITINERA, CATKEY, TASSA, VALIDO_DAL, VALIDO_AL, CODSCO, CODIVA, CODLIST, CODTAR, ADU, CHD, INF, MTL
) SELECT 
	CODTASSA, CODVAL, CODITINERA, CATKEY, TASSA, @validoDal_new, @validoAl_22, CODSCO, @codiva_new, CODLIST, CODTAR, ADU, CHD, INF, MTL
from configtasse where codiva=@codiva_old
if @@error<>0
goto on_error

print 'modifico configdiritti'
update configdiritti set valido_al=@validoAl_new_21
if @@error<>0 goto on_error
insert into configdiritti (CODTASSA, CODVAL, CODPROV, CODLOCALE, CODITINERA, DIRITTO, DIRITTO_AR, XMODIFICA, CODIVA, VALIDO_DAL, VALIDO_AL)
	SELECT CODTASSA, CODVAL, CODPROV, CODLOCALE, CODITINERA, DIRITTO, DIRITTO_AR, XMODIFICA, @codiva_new, @validoDal_new, @validoAl_22
	FROM CONFIGDIRITTI WHERE CODIVA=@codiva_old
IF @@ERROR<>0 GOTO ON_ERROR

PRINT 'MODIFICO CONFIGASSICURAZIONE'
UPDATE CONFIGASSICURAZIONE SET VALIDO_AL=@validoAl_new_21 WHERE CODIVA=@codiva_old
IF @@ERROR<>0 GOTO ON_ERROR

INSERT INTO (CODTASSA, CODVAL, N_SEQ, ASSICURAZIONE, CODITINERA, CODIVA, VALIDO_DAL, VALIDO_AL)
	SELECT CODTASSA, CODVAL, N_SEQ, ASSICURAZIONE, CODITINERA, @codiva_new, @validoDal_new, @validoAl_22
	FROM CONFIGASSICURAZIONE WHERE CODIVA=@codiva_old
IF @@ERROR<>0 GOTO ON_ERROR

PRINT 'MODIFICO CONFIGCATEGO_IVA'
UPDATE CONFIGCATEGO_IVA SET VALIDO_AL=@validoAl_new_21 WHERE CODIVA=@codiva_old
IF @@ERROR<>0 GOTO ON_ERROR

INSERT INTO CONFIGCATEGO_IVA (CODVAL, CODITINERA, GRUPPO_CAT, CODIVA, VALIDO_DAL, VALIDO_AL)
	SELECT CODVAL, CODITINERA, GRUPPO_CAT, @codiva_new, @validoDal_new, @validoAl_22
	FROM CONFIGCATEGO_IVA WHERE CODIVA=@codiva_old
IF @@ERROR<>0 GOTO ON_ERROR

commit transaction

on_error:
 rollback transaction